<?php
// +----------------------------------------------------------------------
// | 萤火商城系统 [ 致力于通过产品和服务，帮助商家高效化开拓市场 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2024 https://www.yiovo.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed 这不是一个自由软件，不允许对程序代码以任何形式任何目的的再发行
// +----------------------------------------------------------------------
// | Author: 萤火科技 <admin@yiovo.com>
// +----------------------------------------------------------------------
declare (strict_types=1);

namespace app\job\controller\goods;

use app\job\service\goods\Collector as GoodsCollectorService;
use cores\BaseJob;
use cores\traits\QueueTrait;
use cores\exception\BaseException;
use think\db\exception\DataNotFoundException;
use think\db\exception\DbException;
use think\db\exception\ModelNotFoundException;

/**
 * 队列任务：商品采集
 * Class Collector
 * @package app\job\controller
 */
class Collector extends BaseJob
{
    use QueueTrait;

    /**
     * 消费队列任务：商品采集
     * @param array $data 参数 [index队列顺序；totalCount商品总数量；list商品列表；storeId商城ID]
     * @return bool 返回结果
     * @throws BaseException
     * @throws DataNotFoundException
     * @throws DbException
     * @throws ModelNotFoundException
     */
    public function handle(array $data): bool
    {
        $time = date('H:i:s');
        echo "\n  ---- Collector ----  {$time} ----   \n";

        $service = new GoodsCollectorService;
        return $service->batch($data['urls'], $data['form'], $data['recordId'], $data['storeId']);
    }
}